﻿Public Class ArtikelFRM

#Region " D e k l a r a t i o n e n "
    Private BsArtikel As New BindingSource
    Private BsEAN As New BindingSource
#End Region

#Region " ArtikelFRM_Load-Ereignis "
    Private Sub ArtikelFRM_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Me.DgvArtikel.DataSource = BsArtikel
        Me.DgvEAN.DataSource = BsEAN
        LadeDatenArtikel()
    End Sub
#End Region

#Region " ButtonExit_Click-Ereignis "
    Private Sub ButtonExit_Click(sender As Object, e As EventArgs) Handles ButtonExit.Click
        Me.DialogResult = DialogResult.OK
    End Sub
#End Region

#Region " ButtonLöschen_Click-Ereignis "
    Private Sub ButtonLöschen_Click(sender As Object, e As EventArgs) Handles ButtonLöschen.Click
        If DgvArtikel.SelectedRows IsNot Nothing AndAlso DgvArtikel.SelectedRows.Count <> 0 Then
            Dim id As Integer = CInt(DgvArtikel.SelectedRows(0).Cells(0).Value)
            DB.InsertDeleteUpdate("DELETE FROM Artikel WHERE Id = " & id)
            LadeDatenArtikel()
        End If
    End Sub
#End Region

#Region " ButtonSpeichern_Click-Ereignis "
    Private Sub ButtonSpeichern_Click(sender As Object, e As EventArgs) Handles ButtonSpeichern.Click
        If Me.TextBoxBezeichnung.Text <> "" Then
            DB.InsertDeleteUpdate("INSERT INTO Artikel (Name, LagerBestandME1, LagerBestandME2) VALUES ('" & Me.TextBoxBezeichnung.Text & "', 0, 0)")
            Me.TextBoxBezeichnung.Text = ""
            Me.TextBoxBezeichnung.Enabled = False
            Me.ButtonSpeichern.Enabled = False
            LadeDatenArtikel()
        Else
            MsgBox("Bitte geben Sie eine Artikelbezeichnung ein!")
        End If
    End Sub
#End Region

#Region " ButtonNeu_Click-Ereignis "
    Private Sub ButtonNeu_Click(sender As Object, e As EventArgs) Handles ButtonNeu.Click
        Me.ButtonSpeichern.Enabled = True
        Me.TextBoxBezeichnung.Enabled = True
        Me.TextBoxBezeichnung.Focus()
    End Sub
#End Region

#Region " LadeDatenArtikel-Ereignis "
    Private Sub LadeDatenArtikel()
        Dim tmpSQL As String = "SELECT " & TBL.Artikel.TBL & "." & TBL.Artikel.Id &
            ", " & TBL.Artikel.TBL & "." & TBL.Artikel.Name &
            ", " & TBL.Artikel.TBL & "." & TBL.Artikel.LagerBestandME1 &
            ", ME1." & TBL.Mengeneinheiten.Name &
            ", " & TBL.Artikel.TBL & "." & TBL.Artikel.LagerBestandME2 &
            ", ME2." & TBL.Mengeneinheiten.Name &
            " FROM " & TBL.Artikel.TBL &
            " INNER JOIN " & TBL.Mengeneinheiten.TBL & " AS ME1 ON " & TBL.Artikel.TBL & "." & TBL.Artikel.ME1 & " = ME1." & TBL.Mengeneinheiten.Id &
            " INNER JOIN " & TBL.Mengeneinheiten.TBL & " AS ME2 ON " & TBL.Artikel.TBL & "." & TBL.Artikel.ME2 & " = ME2." & TBL.Mengeneinheiten.Id &
            " ORDER BY " & TBL.Artikel.Name
        Dim meDaten As DataTable = DB.BildeDataSet(tmpSQL).Tables(0)
        meDaten.Columns(1).ColumnName = "Artikel"
        meDaten.Columns(2).ColumnName = "Menge "
        meDaten.Columns(3).ColumnName = "Einheit "
        meDaten.Columns(4).ColumnName = "Menge"
        meDaten.Columns(5).ColumnName = "Einheit"
        Me.DgvArtikel.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
        Me.BsArtikel.DataSource = meDaten
        Me.DgvArtikel.AutoResizeColumns()
        Me.DgvArtikel.Columns(0).Visible = False
    End Sub
#End Region

#Region " LadeDatenEAN-Ereignis "
    Private Sub LadeDatenEAN()
        If DgvEAN.SelectedRows IsNot Nothing AndAlso DgvArtikel.SelectedRows.Count <> 0 Then
            Dim artikelID As Integer = CInt(DgvArtikel.SelectedRows(0).Cells(0).Value)
            Dim meDaten As DataTable = DB.BildeDataSet("SELECT " & TBL.EANcodes.Code & ", " & TBL.EANcodes.MeUmrechnungsfaktor & " FROM EANcodes WHERE Artikel = '" & artikelID & "'").Tables(0)
            meDaten.Columns(0).ColumnName = "EAN-Code"
            meDaten.Columns(1).ColumnName = "Umrechnungsfaktor"
            Me.DgvEAN.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
            Me.BsEAN.DataSource = meDaten
            Me.DgvEAN.AutoResizeColumns()
        End If
    End Sub
#End Region

#Region " ArtikelGewechselt-Ereignis "
    Private Sub ArtikelGewechselt() Handles DgvArtikel.SelectionChanged
        LadeDatenEAN()
    End Sub
#End Region

End Class